#include "../mqcommon/helper.hpp"


int main()
{
    wzf::FileHelper file("../mqcommon/logger.hpp");
    DLOG("文件是否存在：%d", file.exists());
    DLOG("文件大小：%ld", file.size());

    //目录创建测试，文件创建测试
    wzf::FileHelper file2("./a/b/c/d/tmp.cc");
    if(file2.exists() == false)
    {                                   //这个是其实还是必要的，文件存在continue，直接return不合适
        std::string path = file2.getParentDirectory("./a/b/c/d/tmp.cc");//这个就要加errno != EEXIST ,因为第一个目录是.,这个是存在的
        // std::string path = file2.getParentDirectory("a/b/c/d/tmp.cc"); //errno != EEXIST可以不加
        if(wzf::FileHelper(path).exists() == false)
            wzf::FileHelper::createDirectory(path);

        wzf::FileHelper::createFile("./a/b/c/d/tmp.cc"); 
    }
    
    //读写测试
    std::string buffer;
    file.read(buffer);
    // DLOG("%s", buffer.c_str());
    file2.write(buffer);

    //区间读取
    wzf::FileHelper file3("./a/b/c/d/tmp.cc");
    char* buffer1;    //这里没有开空间也没报错
    file3.read(buffer1, 8, 11);
    DLOG("%s", buffer1);

    //区间写入
    file3.write("00000000000", 8, 11);
    file3.read(buffer1, 8, 11);

    //重命名
    file3.rename("./a/b/c/d/test.cc"); 

    //递归删除目录
    wzf::FileHelper::removeDirectory("./a");
    return 0;
}